HarmonyOS-鸿蒙app开发 —HarmonyOS 3.1 开发基础知识_Stage模型应用程序包结构

HarmonyOS-鸿蒙app开发 —HarmonyOS 3.1 开发基础知识_Stage模型应用程序包结构

基于Stage模型开发的应用,经编译打包后,其应用程序包结构如图1所示。开发者需要熟悉应用程序包结构相关的基本概念。

  • 开发者通过DevEco Studio把应用程序编译为一个或者多个.hap后缀的文件,即HAP(Harmony Ability Package)。HAP是HarmonyOS应用安装的基本单位,包含了编译后的代码、资源、三方库及配置文件。HAP可分为Entry和Feature两种类型。
    • Entry类型的HAP:是应用的主模块,在module.json5中的type属性配置为entry类型。在同一个应用中,同一设备类型只支持一个Entry类型的HAP,通常用于实现应用的入口界面、入口图标、主特性功能等。
    • Feature类型的HAP:是应用的动态特性模块,在module.json5中的type属性配置为feature类型。一个应用程序包可以包含一个或多个Feature类型的HAP,也可以不包含;Feature类型的HAP通常用于实现应用的特性功能,可以配置成按需下载安装,也可以配置成随Entry类型的HAP一起下载安装(请参见module对象内部结构中的“deliveryWithInstall”)。
      说明

      在DevEco Studio工程目录中,一个HAP对应一个Module。

      Module是指DevEco Studio工程中的功能单元。一个DevEco Studio工程可以包含多个Module,同时Module分为“Ability”、“Library”两种类型。此处的HAP对应“Ability”类型的Module;下文即将介绍的HAR(Harmony Ability Resources)包对应“Library”类型的Module。

  • 每个HarmonyOS应用可以包含多个.hap文件,这些.hap文件合在一起称为一个Bundle,每个应用都有一个BundleName。在每台设备上,已安装应用的BundleName是唯一的。需要特别说明的是:在应用上架到应用市场时,需要把应用包含的所有.hap文件(即Bundle)打包为一个.app后缀的文件用于上架,这个.app文件称为App Pack(Application Package),其中同时包含了描述App Pack属性的pack.info文件;但是,在云端分发和端侧安装时,都是以HAP为单位进行分发和安装的。
  • 打包后的HAP包结构包括ets、libs、resources等文件夹和resources.index、module.json、pack.info等文件。
    • ets目录用于存放应用代码编译后的字节码文件。
    • libs目录用于存放库文件。库文件是HarmonyOS应用依赖的第三方代码(.so二进制文件)。

    • resources目录用于存放应用的资源文件(字符串、图片等),便于开发者使用和维护,详见资源文件的使用
    • resources.index是资源索引表,由IDE编译工程时生成。
    • module.json是HAP的配置文件,内容由工程配置中的module.json5和app.json5组成,该文件是HAP中必不可少的文件。IDE会自动生成一部分默认配置,开发者按需修改其中的配置。详细字段请参见应用配置文件
    • pack.info是Bundle中用于描述每个HAP属性的文件,例如app中的bundleName和versionCode信息、module中的name、type和abilities等信息,由IDE工具生成Bundle包时自动生成。
      图1 应用程序包结构(Stage模型)
0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x